package com.yukefms.rule.formula.interfaces;

import com.yukefms.engine.running.RunningContext;
import com.yukefms.engine.running.MatchedStatus;
import com.yukefms.jointpoint.BodyPointCloud;

import java.util.List;

/**
 * The rule specifies the constraints by which related point data of body should be satisfied. The point data of moving body is flowed
 * from Camera reader (or possibly more Camera readers) into rule module. Before processed by rules, points data might be filtered and related body points data
 * would be selected and feed into rule module.
 * @author  Ping
 * @date  2021-06-16
 */
public interface StaticBAFormula extends Matchable {
    /**
     * get the joint types used in formula definition.
     * @return
     */
    List<String> relatedJointTypes() ;

    /**
     * set the successor for current formula
     * @param formula
     */
   void setSuccessor(StaticBAFormula formula) ;

    /**
     * get the next static body action formula.
     * @return formula
     */
    StaticBAFormula getSuccessor() ;

    /**
     * Following methods are concerning with action formula name and score
     * @return
     */
    String getName() ;
    void setName(String actionName) ;
    void setScore(double score) ;
    double getScore() ;
    String getDescription() ;
    void setDescription(String description) ;

}
